package com.huilian.iotbox.data.dto;

import com.huilian.iotbox.data.vo.CommodityGroupVo;
import com.huilian.iotbox.data.vo.CommoditySupplierVo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.*;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DisplayRackItemDto extends QueryParam implements Serializable {
    private Long id;
    /**
     * 父展架ID
     */
    private Long displayRackId;
    /**
     * 层级，如第一层、第二层
     */
    private Integer hierarchy;

    /**
     * 货道，如货道1、货道2
     */
    private Integer freightLane;
    /**
     * 别名，如第一层，第二货道就是 102
     */
    private String alias;
    /**
     * 商品ID
     */
    private Long commodityId;
    /**
     * 库存数，在该展架一款商品总库存数
     */
    private Integer stock;

    private Boolean isDelete;

    private Date createTime;
    private Date updateTime;

    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 条形码
     */
    private String barCode;
    /**
     * 图片
     */
    private String fileName;
    /**
     * 分类
     */
    private String groupName;
    private BigDecimal costPrice;
    private BigDecimal retailPrice;
    private String fullName;
    private List<CommoditySupplierVo> commoditySupplierVos;
    private List<CommodityGroupVo> commodityGroupVos;


    private BigDecimal etCostPrice;
    private BigDecimal etRetailPrice;
    private Integer etStock;
    private Integer merchantStoreId;
    private Integer supplierId;
    private Integer groupId;
    private List<DisplayRackItemDto> displayRackItemDtos=new ArrayList<>();
    private List<Integer> commodityIdList = new ArrayList<>();

    private Integer deviceId;

    private Integer userId;

    private Integer version;

    /**
     * 货道是否全选
     */
    private Boolean allSelected;
    /**
     * 选中的货道id
     */
    private List<Long> idList = new ArrayList<>();

    private Integer capacity;
    private Long dId;

    /**
     * 使能，0：启用 1：禁用
     */
    private Boolean enabled;

    private Boolean setAllEnabled;

    private Boolean status;


    private Boolean notBound;

    private Boolean isAll;

    private Boolean isOutOfStock;
    /** 0 只修改库存和容量，1修改库存、容量、售价、商品类型  2修改售价、成本价*/
    private Integer batchModifyType;

    private String deviceNo;

    /**
     * websocketID
     */
    private String socketId;

    private Integer deviceTypeId;
    private List<Integer> displayRackItemId = new ArrayList<>();
}
